// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISqlAzureAdapter.cs" company="">
//   
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
namespace ExecutionTool.CopyDatabase
{
    using System.Collections.Generic;

    using ExecutionTool.Common;
    using ExecutionTool.Profile;

    public interface ISqlAzureAdapter : IConnectivityTestable<SqlAzureLocation>
    {
        #region Public Methods and Operators

        bool DatabaseExists(SqlAzureLocation sourceSqlAzureLocation, string databaseName);

        void DeleteDatabase(SqlAzureLocation sourceSqlAzureLocation, string targetDatabaseName);

        double GetCopyDatabaseProgress(SqlAzureLocation sourceSqlAzureLocation, string targetDatabaseName);

        SqlAzureDatabaseInfo GetDatabaseInfo(SqlAzureLocation sourceSqlAzureLocation, string databaseName = null);

        IList<string> GetExistingDatabaseNames(SqlAzureLocation sourceSqlAzureLocation);

        void RenameDatabase(SqlAzureLocation sourceSqlAzureLocation, string tempDatabaseName, string databaseName);

        void StartCopyDatabase(SqlAzureLocation sourceSqlAzureLocation, string targetDatabaseName);

        #endregion
    }
}
